Mobile devices, such as smartphones, tablets and laptop computers, are capable of nearly constant internet connectivity with immediate access to online information, as well as the ability to communicate with peers and friends through chat, social networks and email. Mobile devices also allow the user to run general software, including a rich selection of native mobile applications.
However these inherent abilities of fetching remote data and running arbitrary computations have associated costs. Specifically, there are performance and energy costs that can dominate the user experience if the data to be fetched is of substantial size and/or if the needed computation is long and intensive. The result can be long waiting times for the user as well as excessive consumption of battery power.